]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
endSessionDialog: squash "reference to undefined property" warning
authorWill Thompson <will@willthompson.co.uk>
Tue, 25 Sep 2018 17:01:36 +0000 (18:01 +0100)
committerWill Thompson <will@willthompson.co.uk>
Tue, 25 Sep 2018 20:28:35 +0000 (21:28 +0100)
dialogContent is set to one of the elements of the list DialogContent,
but not all of those have a checkBoxText property. When logging out (as
opposed to shutting down), this causes a warning:

    JS WARNING: [resource:///org/gnome/shell/ui/endSessionDialog.js
    763]: reference to undefined property "checkBoxText"

(The line number corresponds to this line in 3.28.3.)

The warning is apparently not triggered if the undefined property is
used as part of a boolean expression:

    gjs> var x = {};
    gjs> x.a;
    typein:2:1 strict warning: reference to undefined property "a"
    gjs> if (x.b) { log('oh no'); }
    gjs> x.c || ''
    ""
_setCheckBoxLabel() just checks the truthiness of its 'text' argument,
and the empty string is false-y, so passing '' rather than undefined has
no functional effect.

js/ui/endSessionDialog.js

index 23ed69769101488d16110c40e30b75eb5ae64f49..4804333d45971bda3acc2b6be86fda4c69da167e 100644 (file)
@@ -727,7 +727,7 @@ var EndSessionDialog = new Lang.Class({
         let updatePrepared = this._pkOfflineProxy.UpdatePrepared;
         let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
 
-        _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText);
+        _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText || '');
         this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed);
         this._checkBox.actor.checked = (updatePrepared && updateTriggered);